Digital computers retrieve instructions and data from a memory device and execute the instructions in accordance with a program stored therein. The computer's repertoire of instructions comprises operational instructions, control instructions or some combination thereof. Operational instructions perform some direct arithmetic or logical function. Control instructions direct the order of execution of instructions. Computer instructions are executed sequentially, usually, as they are found in the computer's memory. Control instructions alter this otherwise sequential flow of execution.
The address of the instruction currently being executed is kept in a machine register, usually known as program counter. As a current instruction is being executed, the next program counter value is generated to address the logically following instruction. If the current instruction is an operational instruction, this next program counter value is the address of the sequential instruction in memory. If the current instruction is a control instruction, the next program counter value is the target address specified by the operand of the control instruction. The speed with which this next program counter value can be generated affects overall computer performance.